<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script>
            // 手机号以13、15、18、19开头，共11位
            // function f1(){
            //     var txt=document.getElementById("txt").value;
            //     var reg=/^1[3589]\d{9}$/;
            //     if(reg.test(txt)){
            //         document.getElementById("info").innerHTML="格式正确";
            //         document.getElementById("info").style.color="green";
            //     }else{
            //         document.getElementById("info").innerHTML="格式错误";
            //         document.getElementById("info").style.color="red";
            //     }
            // }

            // 身份证不能以0开头，有可能是15位数字，
            // 有可能是18位，如果是18位，最后一位可能是数字，可能是X
            // function f1(){
            //     var txt=document.getElementById("txt").value;
            //     var reg=/^[1-9]\d{14}(\d{2}[0-9X])?$/;
            //     if(reg.test(txt)){
            //         document.getElementById("info").innerHTML="格式正确";
            //         document.getElementById("info").style.color="green";
            //     }else{
            //         document.getElementById("info").innerHTML="格式错误";
            //         document.getElementById("info").style.color="red";
            //     }
            // }

            //
            // 电子邮箱：22112@qq.com  dsds7_sa@163.com
            // 邮箱中有可能是数字、字母、下划线，
            // 邮箱以.com结尾，也有可能是以.com.cn结尾
            // function f1(){
            //     var txt=document.getElementById("txt").value;
            //     var reg=/^\w+@\w+\.com(\.cn)?$/;
            //     if(reg.test(txt)){
            //         document.getElementById("info").innerHTML="格式正确";
            //         document.getElementById("info").style.color="green";
            //     }else{
            //         document.getElementById("info").innerHTML="格式错误";
            //         document.getElementById("info").style.color="red";
            //     }
            // }

            // 用户名:以数字字母开头和结尾，用户名可以是数字、字母、下划线、.、-组成，3-18位
            function f1(){
                var txt=document.getElementById("txt").value;
                var reg=/^[0-9a-z][0-9a-z_.-]{1,16}[0-9a-z]$/;
                if(reg.test(txt)){
                    document.getElementById("info").innerHTML="格式正确";
                    document.getElementById("info").style.color="green";
                }else{
                    document.getElementById("info").innerHTML="格式错误";
                    document.getElementById("info").style.color="red";
                }
            }

        </script>
    </head>
    <body>
        <input type="text" id="txt">
        <input type="button" value="测试" onclick="f1()">
        <span id="info"></span>
    </body>
</html>